/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.controlcobros.vista;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.controlcobros.Bl.UsuarioBlLocal;
import mx.itschapala.dsw2.controlcobros.dao.CarrerasDaoLocal;
import mx.itschapala.dsw2.controlcobros.dao.HorarioDaoLocal;
import mx.itschapala.dsw2.controlcobros.modelo.Carreras;
import mx.itschapala.dsw2.controlcobros.modelo.Horario;
import mx.itschapala.dsw2.controlcobros.modelo.Usuario;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;

/**
 *
 * @author Maricela
 */
@ManagedBean
@SessionScoped
public class UserBean {
    @EJB
    private CarrerasDaoLocal carrerasDao;
    @EJB
    private HorarioDaoLocal horarioDao;
     //---------- EJB--------------------
    @EJB
    private UsuarioBlLocal usuarioBl;
    
    //---------- Variables---------------
    private List<Usuario> lista;
    private List<Carreras> carreras;
    private List<Horario> horario;

    private Usuario user;
    private String accion;
    private String clave;
    private String codigoPostal;
    private String telefono;
    private String celular;
    private String colegiatura;

    //---------- Constructor------------
    public UserBean() {
        user = new Usuario ();
    }
    ///--------- Metodos Get y Set-----
   
    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    public String getCodigoPostal() {
        return codigoPostal;
    }

    public void setCodigoPostal(String codigoPostal) {
        this.codigoPostal = codigoPostal;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getColegiatura() {
        return colegiatura;
    }

    public void setColegiatura(String colegiatura) {
        this.colegiatura = colegiatura;
    }


    
     public List<Usuario> getLista() {
        lista=usuarioBl.getAll();
        return lista;
    }
     public Usuario getUser() {
        return user;
    }

    public void setUser(Usuario user) {
        this.user = user;
    }

    public List<Carreras> getCarreras() {
        carreras = carrerasDao.findAll();
        return carreras;
    }

    public List<Horario> getHorario() {
        horario = horarioDao.findAll();
        return horario;
    }
    
     
//---------- Acciones----------------
    public String procesarAccion (){
    if (accion.equalsIgnoreCase("Nuevo")){
        user.setClave(Integer.parseInt(clave));
        user.setCodigoPostal(Integer.parseInt(codigoPostal));
        user.setCelular(Integer.parseInt(celular));
        user.setTelefono(Integer.parseInt(telefono));
     usuarioBl.register(user);
    }else {
        if (accion.equalsIgnoreCase("Editar")){
        user.setTelefono(Integer.parseInt(telefono));
        user.setCodigoPostal(Integer.parseInt(codigoPostal));
        user.setCelular(Integer.parseInt(celular));
        usuarioBl.modify(user);
    }else if (accion.equalsIgnoreCase("Eliminar")){
    usuarioBl.delete(user);
    }
    }
    clave ="";
    codigoPostal="";
    telefono="";
    celular="";
    colegiatura="";
    accion ="";
    return "Usuario";
    
    }
//---------- Listeners---------------
     public void prepararNuevo (ActionEvent evt){
    user= new Usuario ();
    accion="Nuevo";
    }
    public void prepararEditar (ActionEvent evt){
        
//        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
//        System.out.println(index);
//        user = lista.get(index);
        System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+ user);
        accion = "Editar";
    }  
     
    public void prepararEliminar (ActionEvent evt){
//        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
//        System.out.println(index);
//        user = lista.get(index);
        accion = "Eliminar";
    }  
    
    public void postProcessXLS(Object document) {  
    HSSFWorkbook wb = (HSSFWorkbook) document;  
    HSSFSheet sheet = wb.getSheetAt(0);  
    HSSFRow header = sheet.getRow(0);  
      
    HSSFCellStyle cellStyle = wb.createCellStyle();    
    cellStyle.setFillForegroundColor(HSSFColor.GREEN.index);  
    cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  
      
    for(int i=0; i < header.getPhysicalNumberOfCells();i++) {  
        HSSFCell cell = header.getCell(i);  
          
        cell.setCellStyle(cellStyle);  
    }  
}  
    
}
